package com.tyning.newcode.jz11;

/**
 * 剑指 Offer 11. 旋转数组的最小数字
 * 把一个数组最开始的若干个元素搬到数组的末尾，我们称之为数组的旋转。
 * <p>
 * 给你一个可能存在 重复 元素值的数组 numbers ，它原来是一个升序排列的数组，并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如，数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转，该数组的最小值为1。
 * <p>
 * 示例 1：
 * <p>
 * 输入：[3,4,5,1,2]
 * 输出：1
 * 示例 2：
 * <p>
 * 输入：[2,2,2,0,1]
 * 输出：0
 * https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/
 * 注意：本题与主站 154 题相同：https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/
 */

/**
 * @author haining
 */
public class Solution {
    public static void main(String[] args) {

    }

    public int minArrayNew(int[] numbers) {
        if (numbers == null || numbers.length < 1){
            return -1;
        }
        for (int i = 1; i < numbers.length; i++) {
            if (numbers[i] - numbers[i-1] < 0){
                return numbers[i];
            }
        }
        return numbers[0];
    }

//    public int minArray(int[] numbers) {
//        if (numbers == null || numbers.length < 1) {
//            return -1;
//        }
//        if (numbers.length == 1) {
//            return numbers[0];
//        }
//        for (int i = 0; i < numbers.length; i++) {
//            if (numbers[i] - numbers[i + 1] > 0) {
//                return numbers[i];
//            }
//        }
//        return numbers[0];
//    }

}
